package com.example.yqand4v1_1;

import com.example.yqand4v1_1.beans.User;
import com.example.yqand4v1_1.dao.UserEntityMapper;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mybatis.spring.boot.test.autoconfigure.MybatisTest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase.Replace;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.Arrays;
import java.util.List;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;

@RunWith(SpringRunner.class)
@MybatisTest  // 使用Mybatis进行单元测试
@AutoConfigureTestDatabase(replace = Replace.NONE) // 禁用自动配置数据库
public class test {

    @Autowired
    private UserEntityMapper userEntityMapper;

    @Before
    public void setUp() {
        // 在测试之前可以执行一些初始化操作，如插入测试数据
    }

    @Test
    public void testSelectByPrimaryKey() {
        int userId = 1; // 你的测试数据的ID
        User user = userEntityMapper.selectByPrimaryKey(String.valueOf(userId));
        // 添加断言来验证查询结果
        assertNotNull(user);
        assertEquals(userId, user.getId());
    }

    @Test
    public void testSelectByName() {
        String userName = "cfz"; // 你的测试数据的用户名
        String selectedName = userEntityMapper.selectByName(userName);
        // 添加断言来验证查询结果
        assertNotNull(selectedName);
        assertEquals(userName, selectedName);
    }

    @Test
    public void testGetCloudList() {
        // 准备测试数据
//        List<Integer> idList = Arrays.asList(1, 2, 3); // 你的测试数据
//        List<User> userList = userEntityMapper.getCloudList(idList);
//        // 添加断言来验证查询结果
//        assertNotNull(userList);
//        assertEquals(idList.size(), userList.size());
    }

    // 其他测试方法类似，根据需要编写更多测试用例

}
